package com.xuecheng.api.content.model.api;


import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.po.QueryCourseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@Api(tags = "课程基本信息服务接口")
public interface CourseBaseApi {

    @ApiOperation(value = "查询")
    PageVO<CourseBaseDTO> queryCourseList( PageRequestParams params, QueryCourseModel model);

    @ApiOperation(value = "增")
    @ApiImplicitParam(name = "courseBaseVO",value = "课程基本视图信息", required = true, dataType = "CourseBaseVO", paramType = "body")
    CourseBaseDTO createCourse( CourseBaseVO courseBaseVO);

    @ApiOperation(value = "改")
    @ApiImplicitParam(name = "courseBaseVO",value = "课程基本视图信息", required = true, dataType = "CourseBaseVO", paramType = "body")
    CourseBaseDTO modifyCourse( CourseBaseVO courseBaseVO);


    @ApiOperation("根据id删除课程基础信息数据")
    void removeCourseBaseById(Long courseId);

    @ApiOperation("根据课程id查询课程基础信息数据")
    @ApiImplicitParam(name = "courseBaseId",value = "课程基础信息id值",required = true,dataType = "Long",paramType = "path")
    CourseBaseDTO getCourseById(Long courseBaseId);


    //其他代码省略
    @ApiOperation(value = "提交审核")
    @ApiImplicitParam(name = "courseBaseId", value = "课程ID", required = true, dataType = "Long", paramType = "query", example = "1")
    void commitCourseBase(Long courseBaseId);

//    @ApiOperation(value = "课程预览")
//    Object previewCourse(Long courseId,Long companyId);



        //其他代码省略
        @ApiOperation(value = "课程发布")
        void publish(Long courseBaseId);


    }


